﻿Public Class frmUsuariosInicio

    Private mMantenimientoBE As BE.Usuarios
    Private mMantenimientoBS As BS.Usuarios
    Private Principal As frmPrincipal
    Public Inicio As frmUsuariosInicio
    Private mPerfil As BE.PerfilUsuario
    Private mNombreUsuario As String

    Public Property Perfil As BE.PerfilUsuario
        Get
            Return mPerfil
        End Get
        Set(ByVal value As BE.PerfilUsuario)
            mPerfil = value
        End Set
    End Property
    Public Property NombreUsuario As String
        Get
            Return mNombreUsuario
        End Get
        Set(ByVal value As String)
            mNombreUsuario = value
        End Set
    End Property

    Private Sub frmUsuariosInicio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        mMantenimientoBS = New BS.Usuarios
        mMantenimientoBE = New BE.Usuarios
        Inicio = New frmUsuariosInicio
        Inicio = Me
    End Sub

    Function DatosValidos() As Boolean

        Me.txtNombreUsuario.Text = Me.txtNombreUsuario.Text.Trim
        Me.txtContrasena.Text = Me.txtContrasena.Text.Trim

        If Me.txtNombreUsuario.Text = String.Empty Then
            MessageBox.Show("Nombre Usuario es requerido", "Validación", MessageBoxButtons.OK)
            Return False
        End If
        If Me.txtContrasena.Text = String.Empty Then
            MessageBox.Show("Contraseña es requerida", "Validación", MessageBoxButtons.OK)
            Return False
        End If

        Return True
    End Function

    Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click

        If DatosValidos() Then

            mMantenimientoBE.NombreUsuario = txtNombreUsuario.Text
            mMantenimientoBE.Contrasena = txtContrasena.Text

            Try
                Dim usuario As New BE.Usuarios
                usuario = mMantenimientoBS.Inicio(mMantenimientoBE.NombreUsuario, mMantenimientoBE.Contrasena)
                If usuario.Estado = BE.Estado.Habilitado Then
                    NombreUsuario = mMantenimientoBE.NombreUsuario
                    Perfil = usuario.PerfilUsuario
                    Me.Hide()
                    Principal = New frmPrincipal
                    Principal.Show()
                End If
            Catch ex As Exception
                MessageBox.Show("No se puede Iniciar Sesión") 'cuando esta inhabilitado llega al catch, por seguridad no se indica la razon
            End Try
        End If
        'Me.DialogResult = Windows.Forms.DialogResult.OK
    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Salir()
    End Sub
    Public Sub Salir()
        Me.Close()
    End Sub
    Public Sub CerrarSesion()
        txtNombreUsuario.Text = ""
        txtContrasena.Text = ""
        txtNombreUsuario.Select() 'posiciona el cursor
        Me.Show()
        Principal.Close()
    End Sub
End Class